module.exports = app => {
  const mongoose = app.mongoose;
  const Schema = mongoose.Schema;

  const WxFriendSchema = new Schema({
    ownerWxid: { type: String, required: true, index: true }, // 所属微信号
    wxid: { type: String, required: true, index: true }, // wxid
    nick: { type: String }, // 昵称
    wxNum: { type: String }, // 微信号
    phone: { type: String }, // 手机号
    remark: { type: String }, // 备注
    sex: { type: String }, // 性别
    avatarMinUrl: { type: String }, // 头像小图
    avatarMaxUrl: { type: String }, // 头像大图
    nickBrief: { type: String }, // 昵称简写
    nickWhole: { type: String }, // 昵称全写
    remarkBrief: { type: String }, // 备注简写
    remarkWhole: { type: String }, // 备注全写
    enBrief: { type: String }, // 英文名简写
    enWhole: { type: String }, // 英文名全写
    v3: { type: String }, // v3
    sign: { type: String }, // 签名
    country: { type: String }, // 国家
    province: { type: String }, // 省份
    city: { type: String }, // 城市
    label: { type: String }, // 标签
    tags: [{ type: String }], // 自定义标签分组，可多个
    isopenai: { type: Boolean, default: false }, // 是否开启AI回复
    isconfirmpay: { type: Boolean, default: false }, // 是否开启自动收款
    isfriend: { type: Boolean, default: true },// 是否为好友
    isvip: { type: Boolean, default: false },// 是否为会员    
    vipExpireTime: { type: Date },// 会员有效期
    ischat:  { type: Boolean, default: false },// 是否保存有聊天记录    
    isreceive: { type: Boolean, default: true },// 是否接收群发的开关
  }, {
    timestamps: { createdAt: 'createTime', updatedAt: 'updateTime' },
  });

  WxFriendSchema.index({ wxid: 1, ownerWxid: 1 }, { unique: true });
  WxFriendSchema.index({ nickBrief: 1 });
  WxFriendSchema.index({ isvip: 1 });
  WxFriendSchema.index({ isreceive: 1 });
  WxFriendSchema.index({ updateTime: -1 });
  WxFriendSchema.index({ createdAt: -1 });
  WxFriendSchema.index({ vipExpireTime: -1 });
  
  return mongoose.model('Wxfriend', WxFriendSchema);
};
